﻿using Microsoft.Extensions.AI;
using OllamaSharp;


/*
    OllamaApiClient继承于IChatClient接口
    参数解释：
        1.Uri：接口服务的地址
        2.模型名称  --> 这里同样可以修改为本地部署的其他模型，比如deepseek
*/
IChatClient chatClient =
    new OllamaApiClient(new Uri("http://localhost:11434/"), "phi3:mini");

// 从AI模型的上下文开始对话
List<ChatMessage> chatHistory = new();

while (true)
{
    // 获取用户提示并添加聊天记录
    Console.WriteLine("Your prompt:");
    var userPrompt = Console.ReadLine();
    chatHistory.Add(new ChatMessage(ChatRole.User, userPrompt));

    // 流式传输AI响应并添加到聊天历史记录中
    Console.WriteLine("AI Response:");
    var response = "";
    await foreach (ChatResponseUpdate item in
        chatClient.GetStreamingResponseAsync(chatHistory).ConfigureAwait(false))
    {
        Console.Write(item.Text);
        response += item.Text;
    }
    chatHistory.Add(new ChatMessage(ChatRole.Assistant, response));
    Console.WriteLine();
}